home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / misc / bgui12.lha / include / libraries / bgui.h < prev    next >
C/C++ Source or Header  |  1995-09-09  |  43KB  |  1,281 lines

  1. #ifndef LIBRARIES_BGUI_H
  2. #define LIBRARIES_BGUI_H
  3. /*
  4. **    $VER: libraries/bgui.h 39.22 (9.9.95)
  5. **    C header for the bgui.library.
  6. **
  7. **    bgui.library structures and constants.
  8. **
  9. **    (C) Copyright 1993-1995 Jaba Development.
  10. **    (C) Copyright 1993-1995 Jan van den Baard.
  11. **    All Rights Reserved.
  12. **/
  13.  
  14. #ifndef EXEC_TYPES_H
  15. #include <exec/types.h>
  16. #endif /* EXEC_TYPES_H */
  17.  
  18. #ifndef INTUITION_CLASSES_H
  19. #include <intuition/classes.h>
  20. #endif /* INTUITION_CLASSES_H */
  21.  
  22. #ifndef INTUITION_CLASSUSR_H
  23. #include <intuition/classusr.h>
  24. #endif /* INTUITION_CLASSUSR_H */
  25.  
  26. #ifndef INTUITION_IMAGECLASS_H
  27. #include <intuition/imageclass.h>
  28. #endif /* INTUITION_IMAGECLASS_H */
  29.  
  30. #ifndef INTUITION_GADGETCLASS_H
  31. #include <intuition/gadgetclass.h>
  32. #endif /* INTUITION_GADGETCLASS_H */
  33.  
  34. #ifndef INTUITION_CGHOOKS_H
  35. #include <intuition/cghooks.h>
  36. #endif /* INTUITION_CGHOOKS_H */
  37.  
  38. #ifndef LIBRARIES_COMMODITIES_H
  39. #include <libraries/commodities.h>
  40. #endif /* LIBRARIES_COMMODITIES_H */
  41.  
  42. #ifndef LIBRARIES_GADTOOLS_H
  43. #include <libraries/gadtools.h>
  44. #endif /* LIBRARIES_GADTOOLS_H */
  45.  
  46. /*****************************************************************************
  47.  *
  48.  *    The attribute definitions in this header are all followed by
  49.  *    a small comment. This comment can contain the following things:
  50.  *
  51.  *    I     - Attribute can be set with OM_NEW
  52.  *    S     - Attribute can be set with OM_SET
  53.  *    G     - Attribute can be read with OM_GET
  54.  *    N     - Setting this attribute triggers a notification.
  55.  *    U     - Attribute can be set with OM_UPDATE.
  56.  *    PRIVATE! - Like it says: Private. Do not use this attribute.
  57.  */
  58.  
  59. /*****************************************************************************
  60.  *
  61.  *    Miscellanious library definitions.
  62.  */
  63. #define BGUINAME            "bgui.library"
  64. #define BGUIVERSION            37
  65.  
  66. /*****************************************************************************
  67.  *
  68.  *    BGUI_GetClassPtr() and BGUI_NewObjectA() class ID's.
  69.  */
  70. #define BGUI_LABEL_IMAGE        (0L)
  71. #define BGUI_FRAME_IMAGE        (1L)
  72. #define BGUI_VECTOR_IMAGE        (2L)
  73. /* 3 through 10 reserved. */
  74. #define BGUI_BASE_GADGET        (11L)
  75. #define BGUI_GROUP_GADGET        (12L)
  76. #define BGUI_BUTTON_GADGET        (13L)
  77. #define BGUI_CYCLE_GADGET        (14L)
  78. #define BGUI_CHECKBOX_GADGET        (15L)
  79. #define BGUI_INFO_GADGET        (16L)
  80. #define BGUI_STRING_GADGET        (17L)
  81. #define BGUI_PROP_GADGET        (18L)
  82. #define BGUI_INDICATOR_GADGET        (19L)
  83.  
  84. /* 20 is reserved. */
  85.  
  86. #define BGUI_PROGRESS_GADGET        (21L)
  87. #define BGUI_SLIDER_GADGET        (22L)
  88. #define BGUI_LISTVIEW_GADGET        (23L)
  89. #define BGUI_MX_GADGET            (24L)
  90. #define BGUI_PAGE_GADGET        (25L)
  91. #define BGUI_EXTERNAL_GADGET        (26L)
  92. #define BGUI_SEPERATOR_GADGET        (27L)
  93.  
  94. /* 27 through 39 reserved. */
  95. #define BGUI_WINDOW_OBJECT        (40L)
  96. #define BGUI_FILEREQ_OBJECT        (41L)
  97. #define BGUI_COMMODITY_OBJECT        (42L)
  98.  
  99. /* Typo */
  100. #define BGUI_SEPARATOR_GADGET        BGUI_SEPERATOR_GADGET
  101.  
  102. /*****************************************************************************
  103.  *
  104.  *    BGUI requester definitions.
  105.  */
  106. struct bguiRequest {
  107.     ULONG         br_Flags;        /* See below.            */
  108.     STRPTR         br_Title;        /* Requester title.        */
  109.     STRPTR         br_GadgetFormat;    /* Gadget labels.        */
  110.     STRPTR         br_TextFormat;         /* Body text format.        */
  111.     UWORD         br_ReqPos;        /* Requester position.        */
  112.     struct TextAttr *br_TextAttr;        /* Requester font.        */
  113.     UBYTE         br_Underscore;         /* Underscore indicator.    */
  114.     UBYTE         br_Reserved0[ 3 ];    /* Set to 0!            */
  115.     struct Screen    *br_Screen;        /* Optional screen pointer. */
  116.     ULONG         br_Reserved1[ 4 ];    /* Set to 0!            */
  117. };
  118.  
  119. #define BREQF_CENTERWINDOW    (1<<0) /* Center requester on the window.   */
  120. #define BREQF_LOCKWINDOW    (1<<1) /* Lock the parent window.        */
  121. #define BREQF_NO_PATTERN    (1<<2) /* Don't use back-fill pattern.      */
  122. #define BREQF_XEN_BUTTONS    (1<<3) /* Use XEN style buttons.        */
  123. #define BREQF_AUTO_ASPECT    (1<<4) /* Aspect-ratio dependant look.        */
  124. #define BREQF_FAST_KEYS         (1<<5) /* Return/Esc hotkeys.            */
  125.  
  126. /*****************************************************************************
  127.  *
  128.  *    Tag and method bases.
  129.  */
  130. #define BGUI_TB                         (TAG_USER+0xF0000)
  131. #define BGUI_MB                         (0xF0000)
  132.  
  133. /*****************************************************************************
  134.  *
  135.  *    "frameclass" - BOOPSI framing image.
  136.  */
  137. #define FRM_Type            (BGUI_TB+1)    /* ISG-- */
  138. #define FRM_CustomHook            (BGUI_TB+2)    /* ISG-- */
  139. #define FRM_BackFillHook        (BGUI_TB+3)    /* ISG-- */
  140. #define FRM_Title            (BGUI_TB+4)    /* ISG-- */
  141. #define FRM_TextAttr            (BGUI_TB+5)    /* ISG-- */
  142. #define FRM_Flags            (BGUI_TB+6)    /* ISG-- */
  143. #define FRM_FrameWidth            (BGUI_TB+7)    /* --G-- */
  144. #define FRM_FrameHeight                 (BGUI_TB+8)    /* --G-- */
  145. #define FRM_BackFill            (BGUI_TB+9)    /* ISG-- */
  146. #define FRM_EdgesOnly            (BGUI_TB+10)    /* ISG-- */
  147. #define FRM_Recessed            (BGUI_TB+11)    /* ISG-- */
  148. #define FRM_CenterTitle                 (BGUI_TB+12)    /* ISG-- */
  149. #define FRM_HighlightTitle        (BGUI_TB+13)    /* ISG-- */
  150. #define FRM_ThinFrame            (BGUI_TB+14)    /* ISG-- */
  151. #define FRM_BackPen            (BGUI_TB+15)    /* ISG-- */  /* V39 */
  152. #define FRM_SelectedBackPen        (BGUI_TB+16)    /* ISG-- */  /* V39 */
  153. #define FRM_BackDriPen            (BGUI_TB+17)    /* ISG-- */  /* V39 */
  154. #define FRM_SelectedBackDriPen        (BGUI_TB+18)    /* ISG-- */  /* V39 */
  155.  
  156. /* BGUI_TB+19 through BGUI_TB+80 reserved */
  157.  
  158. /* Back fill types */
  159. #define STANDARD_FILL            (0L)
  160. #define SHINE_RASTER            (1L)
  161. #define SHADOW_RASTER            (2L)
  162. #define SHINE_SHADOW_RASTER        (3L)
  163. #define FILL_RASTER            (4L)
  164. #define SHINE_FILL_RASTER        (5L)
  165. #define SHADOW_FILL_RASTER        (6L)
  166. #define SHINE_BLOCK            (7L)
  167. #define SHADOW_BLOCK            (8L)
  168.  
  169. /* Flags */
  170. #define FRF_EDGES_ONLY        (1<<0)
  171. #define FRF_RECESSED        (1<<1)
  172. #define FRF_CENTER_TITLE    (1<<2)
  173. #define FRF_HIGHLIGHT_TITLE    (1<<3)
  174. #define FRF_THIN_FRAME        (1<<4)
  175.  
  176. /* Frame types */
  177. #define FRTYPE_CUSTOM        (0L)
  178. #define FRTYPE_BUTTON        (1L)
  179. #define FRTYPE_RIDGE        (2L)
  180. #define FRTYPE_DROPBOX        (3L)
  181. #define FRTYPE_NEXT        (4L)
  182. #define FRTYPE_RADIOBUTTON    (5L)
  183. #define FRTYPE_XEN_BUTTON    (6L)
  184.  
  185. /*
  186.  *    FRM_RENDER:
  187.  *
  188.  *    The message packet sent to both the FRM_CustomHook
  189.  *    and FRM_BackFillHook routines. Note that this
  190.  *    structure is READ-ONLY!
  191.  *
  192.  *    The hook is called as follows:
  193.  *
  194.  *        rc = hookFunc( REG(A0) struct Hook       *hook,
  195.  *                   REG(A2) Object           *image_object,
  196.  *                   REG(A1) struct FrameDrawMsg *fdraw );
  197.  */
  198. #define FRM_RENDER        (1L) /* Render yourself           */
  199.  
  200. struct FrameDrawMsg {
  201.     ULONG          fdm_MethodID;   /* FRM_RENDER                   */
  202.     struct RastPort  *fdm_RPort;      /* RastPort ready for rendering */
  203.     struct DrawInfo  *fdm_DrawInfo;   /* All you need to render      */
  204.     struct Rectangle *fdm_Bounds;      /* Rendering bounds.          */
  205.     UWORD          fdm_State;      /* See "intuition/imageclass.h" */
  206. };
  207.  
  208. /*
  209.  *    FRM_THICKNESS:
  210.  *
  211.  *    The message packet sent to the FRM_Custom hook.
  212.  *
  213.  *    The hook is called as follows:
  214.  *
  215.  *    rc = hookFunc( REG(A0) struct Hook        *hook,
  216.  *               REG(A2) Object            *image_object,
  217.  *               REG(A1) struct ThicknessMsg    *thick );
  218.  */
  219. #define FRM_THICKNESS        (2L) /* Give the frame thickness. */
  220.  
  221. struct ThicknessMsg {
  222.     ULONG         tm_MethodID;      /* FRM_THICKNESS          */
  223.     struct {
  224.         UBYTE    *Horizontal;      /* Storage for horizontal      */
  225.         UBYTE    *Vertical;      /* Storage for vertical      */
  226.     }         tm_Thickness;
  227.     BOOL         tm_Thin;      /* Added in V38!          */
  228. };
  229.  
  230. /* Possible hook return codes. */
  231. #define FRC_OK            (0L) /* OK          */
  232. #define FRC_UNKNOWN        (1L) /* Unknow method */
  233.  
  234. /*****************************************************************************
  235.  *
  236.  *    "labelclass" - BOOPSI labeling image.
  237.  */
  238. #define LAB_TextAttr            (BGUI_TB+81)    /* ISG-- */
  239. #define LAB_Style            (BGUI_TB+82)    /* ISG-- */
  240. #define LAB_Underscore            (BGUI_TB+83)    /* ISG-- */
  241. #define LAB_Place            (BGUI_TB+84)    /* ISG-- */
  242. #define LAB_Label            (BGUI_TB+85)    /* ISG-- */
  243. #define LAB_Flags            (BGUI_TB+86)    /* ISG-- */
  244. #define LAB_Highlight            (BGUI_TB+87)    /* ISG-- */
  245. #define LAB_HighUScore            (BGUI_TB+88)    /* ISG-- */
  246. #define LAB_Pen                         (BGUI_TB+89)    /* ISG-- */
  247. #define LAB_SelectedPen                 (BGUI_TB+90)    /* ISG-- */
  248. #define LAB_DriPen            (BGUI_TB+91)    /* ISG-- */
  249. #define LAB_SelectedDriPen        (BGUI_TB+92)    /* ISG-- */
  250.  
  251. /* BGUI_TB+93 through BGUI_TB+160 reserved */
  252.  
  253. /* Flags */
  254. #define LABF_HIGHLIGHT        (1<<0) /* Highlight label     */
  255. #define LABF_HIGH_USCORE    (1<<1) /* Highlight underscoring */
  256.  
  257. /* Label placement */
  258. #define PLACE_IN        (0L)
  259. #define PLACE_LEFT        (1L)
  260. #define PLACE_RIGHT        (2L)
  261. #define PLACE_ABOVE        (3L)
  262. #define PLACE_BELOW        (4L)
  263.  
  264. /* New methods */
  265. /*
  266.  *    The IM_EXTENT method is used to find out how many
  267.  *    pixels the label extents the releative hitbox in
  268.  *    either direction. Normally this method is called
  269.  *    by the baseclass.
  270.  */
  271. #define IM_EXTENT            (BGUI_MB+1)
  272.  
  273. struct impExtent {
  274.     ULONG            MethodID;    /* IM_EXTENT            */
  275.     struct RastPort        *impe_RPort;    /* RastPort            */
  276.     struct IBox           *impe_Extent;    /* Storage for extentions.  */
  277.     struct {
  278.         UWORD           *Width;        /* Storage width in pixels  */
  279.         UWORD           *Height;         /* Storage height in pixels */
  280.     }            impe_LabelSize;
  281.     UWORD            impe_Flags;    /* See below.            */
  282. };
  283.  
  284. #define EXTF_MAXIMUM        (1<<0) /* Request maximum extensions. */
  285.  
  286. /* BGUI_MB+2 through BGUI_MB+40 reserved */
  287.  
  288. /*****************************************************************************
  289.  *
  290.  *    "vectorclass" - BOOPSI scalable vector image.
  291.  *
  292.  *    Based on an idea found in the ObjectiveGadTools.library
  293.  *    by Davide Massarenti.
  294.  */
  295. #define VIT_VectorArray                 (BGUI_TB+161)    /* ISG-- */
  296. #define VIT_BuiltIn            (BGUI_TB+162)    /* ISG-- */
  297. #define VIT_Pen                         (BGUI_TB+163)    /* ISG-- */
  298. #define VIT_DriPen            (BGUI_TB+164)    /* ISG-- */
  299.  
  300. /* BGUI_TB+165 through BGUI_TB+240 reserved. */
  301.  
  302. /*
  303.  *    Command structure which can contain
  304.  *    coordinates, data and command flags.
  305.  */
  306. struct VectorItem {
  307.     WORD            vi_x;        /* X coordinate or data */
  308.     WORD            vi_y;        /* Y coordinate         */
  309.     ULONG            vi_Flags;    /* See below        */
  310. };
  311.  
  312. /* Flags */
  313. #define VIF_MOVE        (1<<0)    /* Move to vc_x, vc_y            */
  314. #define VIF_DRAW        (1<<1)    /* Draw to vc_x, vc_y            */
  315. #define VIF_AREASTART        (1<<2)    /* Start AreaFill at vc_x, vc_y     */
  316. #define VIF_AREAEND        (1<<3)    /* End AreaFill at vc_x, vc_y        */
  317. #define VIF_XRELRIGHT        (1<<4)    /* vc_x relative to right edge        */
  318. #define VIF_YRELBOTTOM        (1<<5)    /* vc_y relative to bottom edge     */
  319. #define VIF_SHADOWPEN        (1<<6)    /* switch to SHADOWPEN, Move/Draw   */
  320. #define VIF_SHINEPEN        (1<<7)    /* switch to SHINEPEN, Move/Draw    */
  321. #define VIF_FILLPEN        (1<<8)    /* switch to FILLPEN, Move/Draw     */
  322. #define VIF_TEXTPEN        (1<<9)    /* switch to TEXTPEN, Move/Draw     */
  323. #define VIF_COLOR        (1<<10) /* switch to color in vc_x        */
  324. #define VIF_LASTITEM        (1<<11) /* last element of the element list */
  325. #define VIF_SCALE        (1<<12) /* X & Y are design width & height  */
  326. #define VIF_DRIPEN        (1<<13) /* switch to dripen vc_x        */
  327. #define VIF_AOLPEN        (1<<14) /* set area outline pen vc_x        */
  328. #define VIF_AOLDRIPEN        (1<<15) /* set area outline dripen vc_x     */
  329. #define VIF_ENDOPEN        (1<<16) /* end area outline pen             */
  330.  
  331. /* Built-in images. */
  332. #define BUILTIN_GETPATH         (1L)
  333. #define BUILTIN_GETFILE         (2L)
  334. #define BUILTIN_CHECKMARK    (3L)
  335. #define BUILTIN_POPUP        (4L)
  336. #define BUILTIN_ARROW_UP    (5L)
  337. #define BUILTIN_ARROW_DOWN    (6L)
  338. #define BUILTIN_ARROW_LEFT    (7L)
  339. #define BUILTIN_ARROW_RIGHT    (8L)
  340.  
  341. /* Design width and heights of the built-in images. */
  342. #define GETPATH_WIDTH        20
  343. #define GETPATH_HEIGHT        14
  344. #define GETFILE_WIDTH        20
  345. #define GETFILE_HEIGHT        14
  346. #define CHECKMARK_WIDTH         26
  347. #define CHECKMARK_HEIGHT    11
  348. #define POPUP_WIDTH        15
  349. #define POPUP_HEIGHT        13
  350. #define ARROW_UP_WIDTH        16
  351. #define ARROW_UP_HEIGHT         9
  352. #define ARROW_DOWN_WIDTH    16
  353. #define ARROW_DOWN_HEIGHT    9
  354. #define ARROW_LEFT_WIDTH    10
  355. #define ARROW_LEFT_HEIGHT    12
  356. #define ARROW_RIGHT_WIDTH    10
  357. #define ARROW_RIGHT_HEIGHT    12
  358.  
  359. /*****************************************************************************
  360.  *
  361.  *    "baseclass" - BOOPSI base gadget.
  362.  *
  363.  *    This is a very important BGUI gadget class. All other gadget classes
  364.  *    are sub-classed from this class. It will handle stuff like online
  365.  *    help, notification, labels and frames etc. If you want to write a
  366.  *    gadget class for BGUI be sure to subclass it from this class. That
  367.  *    way your class will automatically inherit the same features.
  368.  */
  369. #define BT_HelpFile            (BGUI_TB+241)    /* IS--- */
  370. #define BT_HelpNode            (BGUI_TB+242)    /* IS--- */
  371. #define BT_HelpLine            (BGUI_TB+243)    /* IS--- */
  372. #define BT_Inhibit            (BGUI_TB+244)    /* --G-- */
  373. #define BT_HitBox            (BGUI_TB+245)    /* --G-- */
  374. #define BT_LabelObject            (BGUI_TB+246)    /* -SG-- */
  375. #define BT_FrameObject            (BGUI_TB+247)    /* -SG-- */
  376. #define BT_TextAttr            (BGUI_TB+248)    /* ISG-- */
  377. #define BT_NoRecessed            (BGUI_TB+249)    /* -S--- */
  378. #define BT_LabelClick            (BGUI_TB+250)    /* IS--- */
  379. #define BT_HelpText            (BGUI_TB+251)    /* IS--- */
  380.  
  381. /* BGUI_TB+252 through BGUI_TB+320 reserved. */
  382.  
  383. /* New methods */
  384. #define BASE_ADDMAP            (BGUI_MB+41)
  385.  
  386. /* Add an object to the maplist notification list. */
  387. struct bmAddMap {
  388.     ULONG            MethodID;
  389.     Object               *bam_Object;
  390.     struct TagItem           *bam_MapList;
  391. };
  392.  
  393. #define BASE_ADDCONDITIONAL        (BGUI_MB+42)
  394.  
  395. /* Add an object to the conditional notification list. */
  396. struct bmAddConditional {
  397.     ULONG            MethodID;
  398.     Object               *bac_Object;
  399.     struct TagItem        bac_Condition;
  400.     struct TagItem        bac_TRUE;
  401.     struct TagItem        bac_FALSE;
  402. };
  403.  
  404. #define BASE_ADDMETHOD            (BGUI_MB+43)
  405.  
  406. /* Add an object to the method notification list. */
  407. struct bmAddMethod {
  408.     ULONG            MethodID;
  409.     Object               *bam_Object;
  410.     ULONG            bam_Flags;
  411.     ULONG            bam_Size;
  412.     ULONG            bam_MethodID;
  413. };
  414.  
  415. #define BAMF_NO_GINFO        (1<<0)    /* Do not send GadgetInfo. */
  416. #define BAMF_NO_INTERIM         (1<<1)    /* Skip interim messages.  */
  417.  
  418. #define BASE_REMMAP            (BGUI_MB+44)
  419. #define BASE_REMCONDITIONAL        (BGUI_MB+45)
  420. #define BASE_REMMETHOD            (BGUI_MB+46)
  421.  
  422. /* Remove an object from a notification list. */
  423. struct bmRemove {
  424.     ULONG            MethodID;
  425.     Object               *bar_Object;
  426. };
  427.  
  428. #define BASE_SHOWHELP            (BGUI_MB+47)
  429.  
  430. /* Show attached online-help. */
  431. struct bmShowHelp {
  432.     ULONG            MethodID;
  433.     struct Window           *bsh_Window;
  434.     struct Requester       *bsh_Requester;
  435.     struct {
  436.         WORD        X;
  437.         WORD        Y;
  438.     }            bsh_Mouse;
  439. };
  440.  
  441. #define BMHELP_OK        (0L)    /* OK, no problems.          */
  442. #define BMHELP_NOT_ME        (1L)    /* Mouse not over the object. */
  443. #define BMHELP_FAILURE        (2L)    /* Showing failed.          */
  444.  
  445. /*
  446.  *    The following three methods are used internally to
  447.  *    perform infinite-loop checking. Do not use them.
  448.  */
  449. #define BASE_SETLOOP            (BGUI_MB+48)
  450. #define BASE_CLEARLOOP            (BGUI_MB+49)
  451. #define BASE_CHECKLOOP            (BGUI_MB+50)
  452.  
  453. /* PRIVATE! Hands off! */
  454. #define BASE_LEFTEXT            (BGUI_MB+51)
  455.  
  456. struct bmLeftExt {
  457.     ULONG            MethodID;
  458.     struct RastPort        *bmle_RPort;
  459.     UWORD               *bmle_Extention;
  460. };
  461.  
  462. #define BASE_ADDHOOK            (BGUI_MB+52)
  463.  
  464. /* Add a hook to the hook-notification list. */
  465. struct bmAddHook {
  466.     ULONG            MethodID;
  467.     struct Hook           *bah_Hook;
  468. };
  469.  
  470. /* Remove a hook from the hook-notification list. */
  471. #define BASE_REMHOOK            (BGUI_MB+53)
  472.  
  473. /* BGUI_MB+54 through BGUI_MB+80 reserved. */
  474.  
  475. /*****************************************************************************
  476.  *
  477.  *    "groupclass" - BOOPSI group gadget.
  478.  *
  479.  *    This class is the actual bgui.library layout engine. It will layout
  480.  *    all members in a specific area. Two group types are available,
  481.  *    horizontal and vertical groups.
  482.  */
  483. #define GROUP_Style            (BGUI_TB+321)    /* I---- */
  484. #define GROUP_Spacing            (BGUI_TB+322)    /* I---- */
  485. #define GROUP_HorizOffset        (BGUI_TB+323)    /* I---- */
  486. #define GROUP_VertOffset        (BGUI_TB+324)    /* I---- */
  487. #define GROUP_LeftOffset        (BGUI_TB+325)    /* I---- */
  488. #define GROUP_TopOffset                 (BGUI_TB+326)    /* I---- */
  489. #define GROUP_RightOffset        (BGUI_TB+327)    /* I---- */
  490. #define GROUP_BottomOffset        (BGUI_TB+328)    /* I---- */
  491. #define GROUP_Member            (BGUI_TB+329)    /* I---- */
  492. #define GROUP_SpaceObject        (BGUI_TB+330)    /* I---- */
  493. #define GROUP_BackFill            (BGUI_TB+331)    /* I---- */
  494. #define GROUP_EqualWidth        (BGUI_TB+332)    /* I---- */
  495. #define GROUP_EqualHeight        (BGUI_TB+333)    /* I---- */
  496. #define GROUP_Inverted            (BGUI_TB+334)    /* I---- */
  497.  
  498. /* BGUI_TB+335 through BGUI_TB+380 reserved. */
  499.  
  500. /* Object layout attributes. */
  501. #define LGO_FixWidth            (BGUI_TB+381)
  502. #define LGO_FixHeight            (BGUI_TB+382)
  503. #define LGO_Weight            (BGUI_TB+383)
  504. #define LGO_FixMinWidth                 (BGUI_TB+384)
  505. #define LGO_FixMinHeight        (BGUI_TB+385)
  506. #define LGO_Align            (BGUI_TB+386)
  507. #define LGO_NoAlign            (BGUI_TB+387)             /* V38 */
  508.  
  509. /* BGUI_TB+388 through BGUI_TB+400 reserved. */
  510.  
  511. /* Default object weight. */
  512. #define DEFAULT_WEIGHT            (50L)
  513.  
  514. /* Group styles. */
  515. #define GRSTYLE_HORIZONTAL        (0L)
  516. #define GRSTYLE_VERTICAL        (1L)
  517.  
  518. /* New methods. */
  519. #define GRM_ADDMEMBER            (BGUI_MB+81)
  520.  
  521. /* Add a member to the group. */
  522. struct grmAddMember {
  523.     ULONG            MethodID;    /* GRM_ADDMEMBER        */
  524.     Object               *grma_Member;    /* Object to add.        */
  525.     ULONG            grma_Attr;    /* First of LGO attributes. */
  526. };
  527.  
  528. #define GRM_REMMEMBER            (BGUI_MB+82)
  529.  
  530. /* Remove a member from the group. */
  531. struct grmRemMember {
  532.     ULONG            MethodID;    /* GRM_REMMEMBER        */
  533.     Object               *grmr_Member;    /* Object to remove.        */
  534. };
  535.  
  536. #define GRM_DIMENSIONS            (BGUI_MB+83)
  537.  
  538. /* Ask an object it's dimensions information. */
  539. struct grmDimensions {
  540.     ULONG            MethodID;    /* GRM_DIMENSIONS        */
  541.     struct GadgetInfo      *grmd_GInfo;    /* Can be NULL!             */
  542.     struct RastPort        *grmd_RPort;    /* Ready for calculations.  */
  543.     struct {
  544.         UWORD           *Width;
  545.         UWORD           *Height;
  546.     }            grmd_MinSize;    /* Storage for dimensions.  */
  547.     ULONG            grmd_Flags;    /* See below.            */
  548. };
  549.  
  550. /* Flags */
  551. #define GDIMF_NO_FRAME        (1<<0)    /* Don't take frame width/height
  552.                        into consideration.            */
  553.  
  554. #define GRM_ADDSPACEMEMBER        (BGUI_MB+84)
  555.  
  556. /* Add a weight controlled spacing member. */
  557. struct grmAddSpaceMember {
  558.     ULONG            MethodID;    /* GRM_ADDSPACEMEMBER        */
  559.     ULONG            grms_Weight;    /* Object weight.        */
  560. };
  561.  
  562. #define GRM_INSERTMEMBER        (BGUI_MB+85)
  563.  
  564. /* Insert a member in the group. */
  565. struct grmInsertMember {
  566.     ULONG            MethodID;    /* GRM_INSERTMEMBER        */
  567.     Object               *grmi_Member;    /* Member to insert.        */
  568.     Object               *grmi_Pred;    /* Insert after this member */
  569.     ULONG            grmi_Attr;    /* First of LGO attributes. */
  570. };
  571.  
  572. /* BGUI_MB+86 through BGUI_MB+120 reserved. */
  573.  
  574. /*****************************************************************************
  575.  *
  576.  *    "buttonclass" - BOOPSI button gadget.
  577.  *
  578.  *    GadTools style button gadget.
  579.  *
  580.  *    GA_Selected has been made gettable (OM_GET) for toggle-select
  581.  *    buttons. (ISGNU)
  582.  */
  583. #define BUTTON_ScaleMinWidth        (BGUI_TB+401)    /* PRIVATE! */
  584. #define BUTTON_ScaleMinHeight        (BGUI_TB+402)    /* PRIVATE! */
  585. #define BUTTON_Image            (BGUI_TB+403)    /* IS--U */
  586. #define BUTTON_SelectedImage        (BGUI_TB+404)    /* IS--U */
  587. #define BUTTON_EncloseImage        (BGUI_TB+405)    /* I---- */  /* V39 */
  588.  
  589. /* BGUI_TB+406 through BGUI_TB+480 reserved. */
  590. /* BGUI_MB+121 through BGUI_MB+160 reserved. */
  591.  
  592. /*****************************************************************************
  593.  *
  594.  *    "checkboxclass" - BOOPSI checkbox gadget.
  595.  *
  596.  *    GadTools style checkbox gadget.
  597.  *
  598.  *    GA_Selected has been made gettable (OM_GET). (ISGNU)
  599.  */
  600.  
  601. /* BGUI_TB+481 through BGUI_TB+560 reserved. */
  602. /* BGUI_MB+161 through BGUI_MB+200 reserved. */
  603.  
  604. /*****************************************************************************
  605.  *
  606.  *    "cycleclass" - BOOPSI cycle gadget.
  607.  *
  608.  *    GadTools style cycle gadget.
  609.  */
  610. #define CYC_Labels            (BGUI_TB+561)    /* I---- */
  611. #define CYC_Active            (BGUI_TB+562)    /* ISGNU */
  612. #define CYC_Popup            (BGUI_TB+563)    /* I---- */
  613.  
  614. /* BGUI_TB+564 through BGUI_TB+640 reserved. */
  615. /* BGUI_MB+201 through BGUI_MB+240 reserved. */
  616.  
  617. /*****************************************************************************
  618.  *
  619.  *    "infoclass" - BOOPSI information gadget.
  620.  *
  621.  *    Text gadget which supports different colors, text styles and
  622.  *    text positioning.
  623.  */
  624. #define INFO_TextFormat                 (BGUI_TB+641)    /* IS--U */
  625. #define INFO_Args            (BGUI_TB+642)    /* IS--U */
  626. #define INFO_MinLines            (BGUI_TB+643)    /* I---- */
  627. #define INFO_FixTextWidth        (BGUI_TB+644)    /* I---- */
  628. #define INFO_HorizOffset        (BGUI_TB+645)    /* I---- */
  629. #define INFO_VertOffset                 (BGUI_TB+646)    /* I---- */
  630.  
  631. /* Command sequences. */
  632. #define ISEQ_B                "\33b"  /* Bold          */
  633. #define ISEQ_I                "\33i"  /* Italics       */
  634. #define ISEQ_U                "\33u"  /* Underlined    */
  635. #define ISEQ_N                "\33n"  /* Normal        */
  636. #define ISEQ_C                "\33c"  /* Centered      */
  637. #define ISEQ_R                "\33r"  /* Right         */
  638. #define ISEQ_L                "\33l"  /* Left          */
  639. #define ISEQ_TEXT            "\33d2" /* TEXTPEN       */
  640. #define ISEQ_SHINE            "\33d3" /* SHINEPEN      */
  641. #define ISEQ_SHADOW            "\33d4" /* SHADOWPEN     */
  642. #define ISEQ_FILL            "\33d5" /* FILLPEN       */
  643. #define ISEQ_FILLTEXT            "\33d6" /* FILLTEXTPEN   */
  644. #define ISEQ_HIGHLIGHT            "\33d8" /* HIGHLIGHTPEN  */
  645.  
  646. /* BGUI_TB+645 through BGUI_TB+720 reserved. */
  647. /* BGUI_MB+241 through BGUI_MB+280 reserved. */
  648.  
  649. /*****************************************************************************
  650.  *
  651.  *    "listviewclass" - BOOPSI listview gadget.
  652.  *
  653.  *    GadTools style listview gadget.
  654.  */
  655. #define LISTV_ResourceHook        (BGUI_TB+721)    /* I---- */
  656. #define LISTV_DisplayHook        (BGUI_TB+722)    /* I---- */
  657. #define LISTV_CompareHook        (BGUI_TB+723)    /* I---- */
  658. #define LISTV_Top            (BGUI_TB+724)    /* ISG-U */
  659. #define LISTV_ListFont            (BGUI_TB+725)    /* I-G-- */
  660. #define LISTV_ReadOnly            (BGUI_TB+726)    /* I---- */
  661. #define LISTV_MultiSelect        (BGUI_TB+727)    /* IS--U */
  662. #define LISTV_EntryArray        (BGUI_TB+728)    /* I---- */
  663. #define LISTV_Select            (BGUI_TB+729)    /* -S--U */
  664. #define LISTV_MakeVisible        (BGUI_TB+730)    /* -S--U */
  665. #define LISTV_Entry            (BGUI_TB+731)    /* ---N- */
  666. #define LISTV_SortEntryArray        (BGUI_TB+732)    /* I---- */
  667. #define LISTV_EntryNumber        (BGUI_TB+733)    /* ---N- */
  668. #define LISTV_TitleHook                 (BGUI_TB+734)    /* I---- */
  669. #define LISTV_LastClicked        (BGUI_TB+735)    /* --G-- */
  670. #define LISTV_ThinFrames        (BGUI_TB+736)    /* I---- */
  671. #define LISTV_LastClickedNum        (BGUI_TB+737)    /* --G-- */  /* V38 */
  672. #define LISTV_NewPosition        (BGUI_TB+738)    /* ---N- */  /* V38 */
  673. #define LISTV_NumEntries        (BGUI_TB+739)    /* --G-- */  /* V38 */
  674. #define LISTV_MinEntriesShown        (BGUI_TB+740)    /* I---- */  /* V38 */
  675. #define LISTV_SelectMulti        (BGUI_TB+741)    /* -S--U */  /* V39 */
  676. #define LISTV_SelectNotVisible        (BGUI_TB+742)    /* -S--U */  /* V39 */
  677. #define LISTV_SelectMultiNotVisible    (BGUI_TB+743)    /* -S--U */  /* V39 */
  678. #define LISTV_MultiSelectNoShift    (BGUI_TB+744)    /* IS--U */  /* V39 */
  679. #define LISTV_DeSelect            (BGUI_TB+745)    /* -S--U */  /* V39 */
  680.  
  681. /* BGUI_TB+746 through BGUI_TB+800 reserved. */
  682.  
  683. /*
  684. **    LISTV_Select magic numbers.
  685. **/
  686. #define LISTV_Select_First        (-1L)                 /* V38 */
  687. #define LISTV_Select_Last        (-2L)                 /* V38 */
  688. #define LISTV_Select_Next        (-3L)                 /* V38 */
  689. #define LISTV_Select_Previous        (-4L)                 /* V38 */
  690. #define LISTV_Select_Top        (-5L)                 /* V38 */
  691. #define LISTV_Select_Page_Up        (-6L)                 /* V38 */
  692. #define LISTV_Select_Page_Down        (-7L)                 /* V38 */
  693. #define LISTV_Select_All        (-8L)                 /* V39 */
  694.  
  695. /*
  696.  *    The LISTV_ResourceHook is called as follows:
  697.  *
  698.  *    rc = hookFunc( REG(A0) struct Hook        *hook,
  699.  *               REG(A2) Object            *lv_object,
  700.  *               REG(A1) struct lvResource    *message );
  701.  */
  702. struct lvResource {
  703.     UWORD            lvr_Command;
  704.     APTR            lvr_Entry;
  705. };
  706.  
  707. /* LISTV_ResourceHook commands. */
  708. #define LVRC_MAKE        1    /* Build the entry. */
  709. #define LVRC_KILL        2    /* Kill the entry.  */
  710.  
  711. /*
  712.  *    The LISTV_DisplayHook and the LISTV_TitleHook are called as follows:
  713.  *
  714.  *    rc = hookFunc( REG(A0) struct Hook           *hook,
  715.  *               REG(A2) Object               *lv_object,
  716.  *               REG(A1) struct lvRender           *message );
  717.  */
  718. struct lvRender {
  719.     struct RastPort        *lvr_RPort;    /* RastPort to render in.  */
  720.     struct DrawInfo        *lvr_DrawInfo;    /* All you need to render. */
  721.     struct Rectangle    lvr_Bounds;    /* Bounds to render in.    */
  722.     APTR            lvr_Entry;    /* Entry to render.       */
  723.     UWORD            lvr_State;    /* See below.           */
  724.     UWORD            lvr_Flags;    /* None defined yet.       */
  725. };
  726.  
  727. /* Rendering states. */
  728. #define LVRS_NORMAL        0
  729. #define LVRS_SELECTED        1
  730. #define LVRS_NORMAL_DISABLED    2
  731. #define LVRS_SELECTED_DISABLED    3
  732.  
  733. /*
  734.  *    The LISTV_CompareHook is called as follows:
  735.  *
  736.  *    rc = hookFunc( REG(A0) struct Hook        *hook,
  737.  *               REG(A2) Object            *lv_object,
  738.  *               REG(A1) struct lvCompare         *message );
  739.  */
  740. struct lvCompare {
  741.     APTR            lvc_EntryA;    /* First entry.  */
  742.     APTR            lvc_EntryB;    /* Second entry. */
  743. };
  744.  
  745. /* New Methods. */
  746. #define LVM_ADDENTRIES            (BGUI_MB+281)
  747.  
  748. /* Add listview entries. */
  749. struct lvmAddEntries {
  750.     ULONG            MethodID;    /* LVM_ADDENTRIES  */
  751.     struct GadgetInfo      *lvma_GInfo;    /* GadgetInfo       */
  752.     APTR               *lvma_Entries;    /* Entries to add. */
  753.     ULONG            lvma_How;    /* How to add it.  */
  754. };
  755.  
  756. /* Where to add the entries. */
  757. #define LVAP_HEAD        1
  758. #define LVAP_TAIL        2
  759. #define LVAP_SORTED        3
  760.  
  761. #define LVM_ADDSINGLE            (BGUI_MB+282)
  762.  
  763. /* Add a single entry. */
  764. struct lvmAddSingle {
  765.     ULONG            MethodID;    /* LVM_ADDSINGLE */
  766.     struct GadgetInfo      *lvma_GInfo;    /* GadgetInfo     */
  767.     APTR            lvma_Entry;    /* Entry to add. */
  768.     ULONG            lvma_How;    /* See above.     */
  769.     ULONG            lvma_Flags;    /* See below.     */
  770. };
  771.  
  772. /* Flags. */
  773. #define LVASF_MAKEVISIBLE    (1<<0)    /* Make entry visible. */
  774. #define LVASF_SELECT        (1<<1)    /* Select entry.       */
  775.  
  776. /* Clear the entire list. ( Uses a lvmCommand structure as defined below.) */
  777. #define LVM_CLEAR            (BGUI_MB+283)
  778.  
  779. #define LVM_FIRSTENTRY            (BGUI_MB+284)
  780. #define LVM_LASTENTRY            (BGUI_MB+285)
  781. #define LVM_NEXTENTRY            (BGUI_MB+286)
  782. #define LVM_PREVENTRY            (BGUI_MB+287)
  783.  
  784. /* Get an entry. */
  785. struct lvmGetEntry {
  786.     ULONG            MethodID;    /* Any of the above. */
  787.     APTR            lvmg_Previous;    /* Previous entry.   */
  788.     ULONG            lvmg_Flags;    /* See below.         */
  789. };
  790.  
  791. #define LVGEF_SELECTED        (1<<0)    /* Get selected entries. */
  792.  
  793. #define LVM_REMENTRY            (BGUI_MB+288)
  794.  
  795. /* Remove an entry. */
  796. struct lvmRemEntry {
  797.     ULONG            MethodID;    /* LVM_REMENTRY      */
  798.     struct GadgetInfo      *lvmr_GInfo;    /* GadgetInfo         */
  799.     APTR            lvmr_Entry;    /* Entry to remove.  */
  800. };
  801.  
  802. #define LVM_REFRESH            (BGUI_MB+289)
  803. #define LVM_SORT            (BGUI_MB+290)
  804. #define LVM_LOCKLIST            (BGUI_MB+291)
  805. #define LVM_UNLOCKLIST            (BGUI_MB+292)
  806.  
  807. /* Refresh/Sort list. */
  808. struct lvmCommand {
  809.     ULONG            MethodID;    /* LVM_REFRESH         */
  810.     struct GadgetInfo      *lvmc_GInfo;    /* GadgetInfo         */
  811. };
  812.  
  813. #define LVM_MOVE            (BGUI_MB+293) /* V38 */
  814.  
  815. /* Move an entry in the list. */
  816. struct lvmMove {
  817.     ULONG            MethodID;    /* LVM_MOVE         */
  818.     struct GadgetInfo      *lvmm_GInfo;    /* GadgetInfo         */
  819.     APTR            lvmm_Entry;    /* Entry to move     */
  820.     ULONG            lvmm_Direction; /* See below         */
  821. };
  822.  
  823. /* Move directions. */
  824. #define LVMOVE_UP        0    /* Move entry up.         */
  825. #define LVMOVE_DOWN        1    /* Move entry down.         */
  826. #define LVMOVE_TOP        2    /* Move entry to the top.    */
  827. #define LVMOVE_BOTTOM        3    /* Move entry to the bottom. */
  828.  
  829. #define LVM_REPLACE            (BGUI_MB+294) /* V39 */
  830.  
  831. /* Replace an entry by another. */
  832. struct lvmReplace {
  833.     ULONG            MethodID;    /* LVM_REPLACE         */
  834.     struct GadgetInfo      *lvmr_GInfo;    /* GadgetInfo         */
  835.     APTR            lvmr_OldEntry;    /* Entry to replace. */
  836.     APTR            lvmr_NewEntry;    /* New entry.         */
  837. };
  838.  
  839. /* BGUI_MB+295 through BGUI_MB+320 reserved. */
  840.  
  841. /*****************************************************************************
  842.  *
  843.  *    "progressclass" - BOOPSI progression gadget.
  844.  *
  845.  *    Progression indicator fuel guage.
  846.  */
  847. #define PROGRESS_Min            (BGUI_TB+801)    /* IS--- */
  848. #define PROGRESS_Max            (BGUI_TB+802)    /* IS--- */
  849. #define PROGRESS_Done            (BGUI_TB+803)    /* ISGNU */
  850. #define PROGRESS_Vertical        (BGUI_TB+804)    /* I---- */
  851. #define PROGRESS_Divisor        (BGUI_TB+805)    /* I---- */
  852.  
  853. /* BGUI_TB+806 through BGUI_TB+880 reserved. */
  854. /* BGUI_MB+321 through BGUI_MB+360 reserved. */
  855.  
  856. /*****************************************************************************
  857.  *
  858.  *    "propclass" - BOOPSI proportional gadget.
  859.  *
  860.  *    GadTools style scroller gadget.
  861.  */
  862. #define PGA_Arrows            (BGUI_TB+881)    /* I---- */
  863. #define PGA_ArrowSize            (BGUI_TB+882)    /* I---- */
  864. #define PGA_DontTarget            (BGUI_TB+883)    /* PRIVATE! */
  865. #define PGA_ThinFrame            (BGUI_TB+884)    /* I---- */
  866. #define PGA_XenFrame            (BGUI_TB+885)    /* I---- */
  867.  
  868. /* BGUI_TB+886 through BGUI_TB+960 reserved. */
  869. /* BGUI_MB+361 through BGUI_MB+400 reserved. */
  870.  
  871. /*****************************************************************************
  872.  *
  873.  *    "stringclass" - BOOPSI string gadget.
  874.  *
  875.  *    GadTools style string/integer gadget.
  876.  */
  877. #define STRINGA_Tabbed            (BGUI_TB+961)    /* PRIVATE! */
  878. #define STRINGA_ShiftTabbed        (BGUI_TB+962)    /* PRIVATE! */
  879. #define STRINGA_MinCharsVisible         (BGUI_TB+963)    /* I---- */  /* V39 */
  880. #define STRINGA_IntegerMin        (BGUI_TB+964)    /* IS--U */  /* V39 */
  881. #define STRINGA_IntegerMax        (BGUI_TB+965)    /* IS--U */  /* V39 */
  882.  
  883. #define SM_FORMAT_STRING        (BGUI_MB+401)    /* V39 */
  884.  
  885. /* Format the string contents. */
  886. struct smFormatString {
  887.     ULONG           MethodID;    /* SM_FORMAT_STRING    */
  888.     struct GadgetInfo *smfs_GInfo;    /* GadgetInfo           */
  889.     UBYTE          *smfs_FStr;    /* Format string       */
  890.     ULONG           smfs_Arg1;    /* Format arg           */
  891.     /* ULONG       smfs_Arg2; */
  892.     /* ... */
  893. };
  894.  
  895. /* BGUI_TB+966 through BGUI_TB+1040 reserved. */
  896. /* BGUI_MB+402 through BGUI_MB+440 reserved. */
  897.  
  898. /*****************************************************************************
  899.  *
  900.  *    RESERVED.
  901.  */
  902.  
  903. /* BGUI_TB+1041 through BGUI_TB+1120 reserved. */
  904. /* BGUI_MB+441 through BGUI_MB+480 reserved. */
  905.  
  906. /*****************************************************************************
  907.  *
  908.  *    "pageclass" - BOOPSI paging gadget.
  909.  *
  910.  *    Gadget to handle pages of gadgets.
  911.  */
  912. #define PAGE_Active            (BGUI_TB+1121)    /* ISGNU */
  913. #define PAGE_Member            (BGUI_TB+1122)    /* I---- */
  914. #define PAGE_NoBufferRP                 (BGUI_TB+1123)    /* I---- */
  915. #define PAGE_Inverted            (BGUI_TB+1124)    /* I---- */
  916.  
  917. /* BGUI_TB+1125 through BGUI_TB+1200 reserved. */
  918. /* BGUI_MB+481 through BGUI_MB+520 reserved. */
  919.  
  920. /*****************************************************************************
  921.  *
  922.  *    "mxclass" - BOOPSI mx gadget.
  923.  *
  924.  *    GadTools style mx gadget.
  925.  */
  926. #define MX_Labels            (BGUI_TB+1201)    /* I---- */
  927. #define MX_Active            (BGUI_TB+1202)    /* ISGNU */
  928. #define MX_LabelPlace            (BGUI_TB+1203)    /* I---- */
  929. #define MX_DisableButton        (BGUI_TB+1204)    /* IS--U */
  930. #define MX_EnableButton                 (BGUI_TB+1205)    /* IS--U */
  931. #define MX_TabsObject            (BGUI_TB+1206)    /* I---- */
  932. #define MX_TabsTextAttr                 (BGUI_TB+1207)    /* I---- */
  933.  
  934. /* BGUI_TB+1208 through BGUI_TB+1280 reserved. */
  935. /* BGUI_MB+521 through BGUI_MB+560 reserved. */
  936.  
  937. /*****************************************************************************
  938.  *
  939.  *    "sliderclass" - BOOPSI slider gadget.
  940.  *
  941.  *    GadTools style slider gadget.
  942.  */
  943. #define SLIDER_Min                (BGUI_TB+1281)    /* IS--U */
  944. #define SLIDER_Max                (BGUI_TB+1282)    /* IS--U */
  945. #define SLIDER_Level                (BGUI_TB+1283)    /* ISGNU */
  946. #define SLIDER_ThinFrame            (BGUI_TB+1284)    /* I---- */
  947. #define SLIDER_XenFrame                         (BGUI_TB+1285)    /* I---- */
  948.  
  949. /* BGUI_TB+1286 through BGUI_TB+1360 reserved. */
  950. /* BGUI_MB+561 through BGUI_MB+600 reserved. */
  951.  
  952. /*****************************************************************************
  953.  *
  954.  *    "indicatorclass" - BOOPSI indicator gadget.
  955.  *
  956.  *    Textual level indicator gadget.
  957.  */
  958. #define INDIC_Min            (BGUI_TB+1361)    /* I---- */
  959. #define INDIC_Max            (BGUI_TB+1362)    /* I---- */
  960. #define INDIC_Level            (BGUI_TB+1363)    /* IS--U */
  961. #define INDIC_FormatString        (BGUI_TB+1364)    /* I---- */
  962. #define INDIC_Justification        (BGUI_TB+1365)    /* I---- */
  963.  
  964. /* Justification */
  965. #define IDJ_LEFT        (0L)
  966. #define IDJ_CENTER        (1L)
  967. #define IDJ_RIGHT        (2L)
  968.  
  969. /* BGUI_TB+1366 through BGUI_TB+1440 reserved. */
  970.  
  971. /*****************************************************************************
  972.  *
  973.  *    "externalclass" - BGUI external class interface.
  974.  */
  975. #define EXT_Class            (BGUI_TB+1441)    /* I---- */
  976. #define EXT_ClassID            (BGUI_TB+1442)    /* I---- */
  977. #define EXT_MinWidth            (BGUI_TB+1443)    /* I---- */
  978. #define EXT_MinHeight            (BGUI_TB+1444)    /* I---- */
  979. #define EXT_TrackAttr            (BGUI_TB+1445)    /* I---- */
  980. #define EXT_Object            (BGUI_TB+1446)    /* --G-- */
  981. #define EXT_NoRebuild            (BGUI_TB+1447)    /* I---- */
  982.  
  983. /* BGUI_TB+1448 through BGUI_TB+1500 reserved. */
  984.  
  985. /*****************************************************************************
  986.  *
  987.  *    "separatorclass" - BOOPSI separator class.
  988.  */
  989. #define SEP_Horiz            (BGUI_TB+1501)    /* I---- */
  990. #define SEP_Title            (BGUI_TB+1502)    /* I---- */
  991. #define SEP_Thin            (BGUI_TB+1503)    /* I---- */
  992. #define SEP_Highlight            (BGUI_TB+1504)    /* I---- */
  993. #define SEP_CenterTitle                 (BGUI_TB+1505)    /* I---- */
  994. #define SEP_Recessed            (BGUI_TB+1506)    /* I---- */  /* V39 */
  995.  
  996. /* BGUI_TB+1507 through BGUI_TB+1760 reserved. */
  997.  
  998. /*****************************************************************************
  999.  *
  1000.  *    "windowclass" - BOOPSI window class.
  1001.  *
  1002.  *    This class creates and maintains an intuition window.
  1003.  */
  1004. #define WINDOW_Position                 (BGUI_TB+1761)    /* I---- */
  1005. #define WINDOW_ScaleWidth        (BGUI_TB+1762)    /* I---- */
  1006. #define WINDOW_ScaleHeight        (BGUI_TB+1763)    /* I---- */
  1007. #define WINDOW_LockWidth        (BGUI_TB+1764)    /* I---- */
  1008. #define WINDOW_LockHeight        (BGUI_TB+1765)    /* I---- */
  1009. #define WINDOW_PosRelBox        (BGUI_TB+1766)    /* I---- */
  1010. #define WINDOW_Bounds            (BGUI_TB+1767)    /* ISG-- */
  1011. /* BGUI_TB+1768 through BGUI_TB+1670 reserved. */
  1012. #define WINDOW_DragBar            (BGUI_TB+1771)    /* I---- */
  1013. #define WINDOW_SizeGadget        (BGUI_TB+1772)    /* I---- */
  1014. #define WINDOW_CloseGadget        (BGUI_TB+1773)    /* I---- */
  1015. #define WINDOW_DepthGadget        (BGUI_TB+1774)    /* I---- */
  1016. #define WINDOW_SizeBottom        (BGUI_TB+1775)    /* I---- */
  1017. #define WINDOW_SizeRight        (BGUI_TB+1776)    /* I---- */
  1018. #define WINDOW_Activate                 (BGUI_TB+1777)    /* I---- */
  1019. #define WINDOW_RMBTrap            (BGUI_TB+1778)    /* I---- */
  1020. #define WINDOW_SmartRefresh        (BGUI_TB+1779)    /* I---- */
  1021. #define WINDOW_ReportMouse        (BGUI_TB+1780)    /* I---- */
  1022. #define WINDOW_Borderless        (BGUI_TB+1781)    /* I---- */  /* V39 */
  1023. #define WINDOW_Backdrop                 (BGUI_TB+1782)    /* I---- */  /* V39 */
  1024. #define WINDOW_ShowTitle        (BGUI_TB+1783)    /* I---- */  /* V39 */
  1025. /* BGUI_TB+1784 through BGUI_TB+1790 reserved. */
  1026. #define WINDOW_IDCMP            (BGUI_TB+1791)    /* I---- */
  1027. #define WINDOW_SharedPort        (BGUI_TB+1792)    /* I---- */
  1028. #define WINDOW_Title            (BGUI_TB+1793)    /* IS--U */
  1029. #define WINDOW_ScreenTitle        (BGUI_TB+1794)    /* IS--U */
  1030. #define WINDOW_MenuStrip        (BGUI_TB+1795)    /* I-G-- */
  1031. #define WINDOW_MasterGroup        (BGUI_TB+1796)    /* I---- */
  1032. #define WINDOW_Screen            (BGUI_TB+1797)    /* IS--- */
  1033. #define WINDOW_PubScreenName        (BGUI_TB+1798)    /* IS--- */
  1034. #define WINDOW_UserPort                 (BGUI_TB+1799)    /* --G-- */
  1035. #define WINDOW_SigMask            (BGUI_TB+1800)    /* --G-- */
  1036. #define WINDOW_IDCMPHook        (BGUI_TB+1801)    /* I---- */
  1037. #define WINDOW_VerifyHook        (BGUI_TB+1802)    /* I---- */
  1038. #define WINDOW_IDCMPHookBits        (BGUI_TB+1803)    /* I---- */
  1039. #define WINDOW_VerifyHookBits        (BGUI_TB+1804)    /* I---- */
  1040. #define WINDOW_Font            (BGUI_TB+1805)    /* I---- */
  1041. #define WINDOW_FallBackFont        (BGUI_TB+1806)    /* I---- */
  1042. #define WINDOW_HelpFile                 (BGUI_TB+1807)    /* IS--- */
  1043. #define WINDOW_HelpNode                 (BGUI_TB+1808)    /* IS--- */
  1044. #define WINDOW_HelpLine                 (BGUI_TB+1809)    /* IS--- */
  1045. #define WINDOW_AppWindow        (BGUI_TB+1810)    /* I---- */
  1046. #define WINDOW_AppMask            (BGUI_TB+1811)    /* --G-- */
  1047. #define WINDOW_UniqueID                 (BGUI_TB+1812)    /* I---- */
  1048. #define WINDOW_Window            (BGUI_TB+1813)    /* --G-- */
  1049. #define WINDOW_HelpText                 (BGUI_TB+1814)    /* IS--- */
  1050. #define WINDOW_NoBufferRP        (BGUI_TB+1815)    /* I---- */
  1051. #define WINDOW_AutoAspect        (BGUI_TB+1816)    /* I---- */
  1052. #define WINDOW_PubScreen        (BGUI_TB+1817)    /* IS--- */  /* V39 */
  1053. #define WINDOW_CloseOnEsc        (BGUI_TB+1818)    /* IS--- */  /* V39 */
  1054. #define WINDOW_ActNext            (BGUI_TB+1819)    /* ----- */  /* V39 */
  1055. #define WINDOW_ActPrev            (BGUI_TB+1820)    /* ----- */  /* V39 */
  1056. #define WINDOW_NoVerify                 (BGUI_TB+1821)    /* -S--- */  /* V39 */
  1057.  
  1058. /* BGUI_TB+1822 through BGUI_TB+1860 reserved. */
  1059.  
  1060. /* Possible window positions. */
  1061. #define POS_CENTERSCREEN    (0L)    /* Center on the screen             */
  1062. #define POS_CENTERMOUSE         (1L)    /* Center under the mouse        */
  1063. #define POS_TOPLEFT        (2L)    /* Top-left of the screen        */
  1064.  
  1065. /* New methods */
  1066.  
  1067. #define WM_OPEN         (BGUI_MB+601)    /* Open the window            */
  1068. #define WM_CLOSE    (BGUI_MB+602)    /* Close the window            */
  1069. #define WM_SLEEP    (BGUI_MB+603)    /* Put the window to sleep        */
  1070. #define WM_WAKEUP    (BGUI_MB+604)    /* Wake the window up            */
  1071. #define WM_HANDLEIDCMP    (BGUI_MB+605)    /* Call the IDCMP handler        */
  1072.  
  1073. /* Pre-defined WM_HANDLEIDCMP return codes. */
  1074. #define WMHI_CLOSEWINDOW    (1<<16) /* The close gadget was clicked     */
  1075. #define WMHI_NOMORE        (2<<16) /* No more messages            */
  1076. #define WMHI_INACTIVE        (3<<16) /* The window was de-activated        */
  1077. #define WMHI_ACTIVE        (4<<16) /* The window was activated        */
  1078. #define WMHI_IGNORE        (~0L)    /* Like it say's: ignore            */
  1079.  
  1080. #define WM_GADGETKEY            (BGUI_MB+606)
  1081.  
  1082. /* Add a hotkey to a gadget. */
  1083. struct wmGadgetKey {
  1084.     ULONG           MethodID;       /* WM_GADGETKEY            */
  1085.     struct Requester  *wmgk_Requester; /* When used in a requester        */
  1086.     Object          *wmgk_Object;    /* Object to activate        */
  1087.     STRPTR           wmgk_Key;       /* Key that triggers activ.        */
  1088. };
  1089.  
  1090. #define WM_KEYACTIVE            (BGUI_MB+607)
  1091. #define WM_KEYINPUT            (BGUI_MB+608)
  1092.  
  1093. /* Send with the WM_KEYACTIVE and WM_KEYINPUT methods. */
  1094. struct wmKeyInput {
  1095.     ULONG           MethodID;     /* WM_KEYACTIVE/WM_KEYINPUT        */
  1096.     struct GadgetInfo *wmki_GInfo;     /* GadgetInfo                */
  1097.     struct InputEvent *wmki_IEvent;  /* Input event                     */
  1098.     ULONG          *wmki_ID;     /* Storage for the object ID        */
  1099.     STRPTR           wmki_Key;     /* Key that triggered activation.  */
  1100. };
  1101.  
  1102. /* Possible WM_KEYACTIVE and WM_KEYINPUT return codes. */
  1103. #define WMKF_MEACTIVE        (0L)     /* Object went active.             */
  1104. #define WMKF_CANCEL        (1<<0)     /* Key activation canceled.        */
  1105. #define WMKF_VERIFY        (1<<1)     /* Key activation confirmed        */
  1106. #define WMKF_ACTIVATE        (1<<2)     /* ActivateGadget() object        */
  1107.  
  1108. #define WM_KEYINACTIVE            (BGUI_MB+609)
  1109.  
  1110. /* De-activate a key session. */
  1111. struct wmKeyInActive {
  1112.     ULONG           MethodID;    /* WM_KEYINACTIVE            */
  1113.     struct GadgetInfo *wmkia_GInfo; /* GadgetInfo                */
  1114. };
  1115.  
  1116. #define WM_DISABLEMENU            (BGUI_MB+610)
  1117. #define WM_CHECKITEM            (BGUI_MB+611)
  1118.  
  1119. /* Disable/Enable a menu or Set/Clear a checkit item. */
  1120. struct wmMenuAction {
  1121.     ULONG           MethodID;    /* WM_DISABLEMENU/WM_CHECKITEM        */
  1122.     ULONG           wmma_MenuID; /* Menu it's ID                     */
  1123.     ULONG           wmma_Set;    /* TRUE = set, FALSE = clear        */
  1124. };
  1125.  
  1126. #define WM_MENUDISABLED                 (BGUI_MB+612)
  1127. #define WM_ITEMCHECKED            (BGUI_MB+613)
  1128.  
  1129. struct wmMenuQuery {
  1130.     ULONG           MethodID;    /* WM_MENUDISABLED/WM_ITEMCHECKED   */
  1131.     ULONG           wmmq_MenuID; /* Menu it's ID                     */
  1132. };
  1133.  
  1134. #define WM_TABCYCLE_ORDER        (BGUI_MB+614)
  1135.  
  1136. /* Set the tab-cycling order. */
  1137. struct wmTabCycleOrder {
  1138.     ULONG           MethodID;    /* WM_TABCYCLE_ORDER            */
  1139.     Object          *wtco_Object1;
  1140.     /* Object      *wtco_Object2; */
  1141.     /* ...    */
  1142.     /* NULL */
  1143. };
  1144.  
  1145. /* Obtain the app message. */
  1146. #define WM_GETAPPMSG            (BGUI_MB+615)
  1147.  
  1148. #define WM_ADDUPDATE            (BGUI_MB+616)
  1149.  
  1150. /* Add object to the update notification list. */
  1151. struct wmAddUpdate {
  1152.     ULONG           MethodID;        /* WM_ADDUPDATE             */
  1153.     ULONG           wmau_SourceID;    /* ID of source object.     */
  1154.     Object          *wmau_Target;         /* Target object.        */
  1155.     struct TagItem      *wmau_MapList;    /* Attribute map-list.        */
  1156. };
  1157.  
  1158. #define WM_REPORT_ID            (BGUI_MB+617) /* V38 */
  1159.  
  1160. /* Report a return code from a IDCMP/Verify hook. */
  1161. struct wmReportID {
  1162.     ULONG           MethodID;        /* WM_REPORT_ID             */
  1163.     ULONG           wmri_ID;        /* ID to report.        */
  1164.     ULONG           wmri_Flags;        /* See below.            */
  1165. };
  1166.  
  1167. /* Flags */
  1168. #define WMRIF_DOUBLE_CLICK    (1<<0)        /* Simulate double-click.   */
  1169.  
  1170. /* Get the window which signalled us. */
  1171. #define WM_GET_SIGNAL_WINDOW        (BGUI_MB+618) /* V39 */
  1172.  
  1173. /* BGUI_MB+619 through BGUI_MB+660 reserved. */
  1174.  
  1175. /*****************************************************************************
  1176.  *
  1177.  *    "commodityclass" - BOOPSI commodity class.
  1178.  */
  1179. #define COMM_Name            (BGUI_TB+1861)    /* I---- */
  1180. #define COMM_Title            (BGUI_TB+1862)    /* I---- */
  1181. #define COMM_Description        (BGUI_TB+1863)    /* I---- */
  1182. #define COMM_Unique            (BGUI_TB+1864)    /* I---- */
  1183. #define COMM_Notify            (BGUI_TB+1865)    /* I---- */
  1184. #define COMM_ShowHide            (BGUI_TB+1866)    /* I---- */
  1185. #define COMM_Priority            (BGUI_TB+1867)    /* I---- */
  1186. #define COMM_SigMask            (BGUI_TB+1868)    /* --G-- */
  1187. #define COMM_ErrorCode            (BGUI_TB+1869)    /* --G-- */
  1188.  
  1189. /* BGUI_TB+1870 through BGUI_TB+1940 reserved. */
  1190.  
  1191. /* New Methods. */
  1192.  
  1193. #define CM_ADDHOTKEY            (BGUI_MB+661)
  1194.  
  1195. /* Add a hot-key to the broker. */
  1196. struct cmAddHotkey {
  1197.     ULONG        MethodID;        /* CM_ADDHOTKEY             */
  1198.     STRPTR        cah_InputDescription;    /* Key input description.   */
  1199.     ULONG        cah_KeyID;        /* Key command ID.        */
  1200.     ULONG        cah_Flags;        /* See below.            */
  1201. };
  1202.  
  1203. /* Flags. */
  1204. #define CAHF_DISABLED    (1<<0)    /* The key is added but won't work.         */
  1205.  
  1206. #define CM_REMHOTKEY            (BGUI_MB+662) /* Remove a key.        */
  1207. #define CM_DISABLEHOTKEY        (BGUI_MB+663) /* Disable a key.     */
  1208. #define CM_ENABLEHOTKEY                 (BGUI_MB+664) /* Enable a key.        */
  1209.  
  1210. /* Do a key command. */
  1211. struct cmDoKeyCommand {
  1212.     ULONG        MethodID;    /* See above.                */
  1213.     ULONG        cdkc_KeyID;    /* ID of the key.            */
  1214. };
  1215.  
  1216. #define CM_ENABLEBROKER                 (BGUI_MB+665) /* Enable broker.     */
  1217. #define CM_DISABLEBROKER        (BGUI_MB+666) /* Disable broker.    */
  1218.  
  1219. #define CM_MSGINFO            (BGUI_MB+667)
  1220.  
  1221. /* Obtain info from a CxMsg. */
  1222. struct cmMsgInfo {
  1223.     ULONG        MethodID;    /* CM_MSGINFO                */
  1224.     struct {
  1225.         ULONG  *Type;        /* Storage for CxMsgType() result.  */
  1226.         ULONG  *ID;        /* Storage for CxMsgID() result.    */
  1227.         ULONG  *Data;        /* Storage for CxMsgData() result.  */
  1228.     }        cmi_Info;
  1229. };
  1230.  
  1231. /* Possible CM_MSGINFO return codes. */
  1232. #define CMMI_NOMORE        (~0L)    /* No more messages.            */
  1233.  
  1234. /* BGUI_MB+668 through BGUI_MB+700 reserved. */
  1235.  
  1236. /*
  1237.  *    CM_ADDHOTKEY error codes obtainable using
  1238.  *    the COMM_ErrorCode attribute.
  1239.  */
  1240. #define CMERR_OK        (0L)    /* OK. No problems.            */
  1241. #define CMERR_NO_MEMORY         (1L)    /* Out of memory.            */
  1242. #define CMERR_KEYID_IN_USE    (2L)    /* Key ID already used.             */
  1243. #define CMERR_KEY_CREATION    (3L)    /* Key creation failure.        */
  1244. #define CMERR_CXOBJERROR    (4L)    /* CxObjError() reported failure.   */
  1245.  
  1246. /*****************************************************************************
  1247.  *
  1248.  *    "filereqclass.c" - BOOPSI Asl filerequester class.
  1249.  */
  1250. #define FRQ_Drawer            (BGUI_TB+1941)    /* --G-- */
  1251. #define FRQ_File            (BGUI_TB+1942)    /* --G-- */
  1252. #define FRQ_Pattern            (BGUI_TB+1943)    /* --G-- */
  1253. #define FRQ_Path            (BGUI_TB+1944)    /* --G-- */
  1254. #define FRQ_Left            (BGUI_TB+1945)    /* --G-- */
  1255. #define FRQ_Top                         (BGUI_TB+1946)    /* --G-- */
  1256. #define FRQ_Width            (BGUI_TB+1947)    /* --G-- */
  1257. #define FRQ_Height            (BGUI_TB+1948)    /* --G-- */
  1258. /*
  1259.  *    In addition to the above defined attributes are all
  1260.  *    ASL filerequester attributes ISG-U.
  1261.  */
  1262.  
  1263. /* BGUI_TB+1949 through BGUI_TB+2020 reserved. */
  1264.  
  1265. /*
  1266.  *    Error codes which the SetAttrs() and DoMethod()
  1267.  *    call's can return.
  1268.  */
  1269. #define FRQ_OK            (0L)    /* OK. No problems.            */
  1270. #define FRQ_CANCEL        (1L)    /* The requester was cancelled.     */
  1271. #define FRQ_ERROR_NO_MEM    (2L)    /* Out of memory.            */
  1272. #define FRQ_ERROR_NO_FREQ    (3L)    /* Unable to allocate a requester.  */
  1273.  
  1274. /* New Methods */
  1275.  
  1276. #define FRM_DOREQUEST            (BGUI_MB+701)    /* Show Requester.  */
  1277.  
  1278. /* BGUI_MB+702 through BGUI_MB+740 reserved. */
  1279.  
  1280. #endif /* LIBRARIES_BGUI_H */
  1281.